package com.mjf.dw.flume;

import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.math.NumberUtils;

public class ETLUtil {

	// 判断启动日志是否符合格式要求
	// 验证JSON字符串的完整性，是否以{}开头结尾
	public static boolean validStartLog(String source) {

		// 判断body是否有数据
		if(StringUtils.isBlank(source)) {

			return false;

		}

		// 验证JSON字符串的完整性，是否以{}开头结尾
		// 去前后空格
		String trimStr = source.trim();

		if(trimStr.startsWith("{") && trimStr.endsWith("}")) {

			return true;

		}

		return false;

	}

	/*
	 * 判断事件日志是否符合格式要求
	 *
	 * 事件日志：时间戳|{}
	 * 		时间戳需要合法：
	 * 			1）长度合法（13位）
	 * 			2）都是数字
	 * 		验证JSON字符串的完整性，是否以{}开头结尾
	 */
	public static boolean validEventLog(String source) {

		// 判断body是否有数据
		if(StringUtils.isBlank(source)) {

			return false;

		}

		// 去前后空格
		String trimStr = source.trim();

		// 竖线需要转义
		String[] words = trimStr.split("\\|");

		if(words.length != 2) {

			return false;

		}

		// 判断时间戳
		// isNumber():判断值是否为数值类型，比如123L
		// isDigits():判断值是否为0-9的数字
		if(words[0].length() != 13 || !NumberUtils.isDigits(words[0])) {

			return false;

		}

		// 验证JSON字符串的完整性，是否以{}开头结尾
		if(words[1].startsWith("{") && words[1].endsWith("}")) {

			return true;

		}

		return false;

	}

}
